package com.zb777.shuzhilingxi.Pojo.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 用户数据传输对象
 * </p>
 *
 * @author author
 * @since 2025-07-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Schema(name="UserDTO对象", description="用户数据传输对象")
public class UserDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "用户ID", hidden = true)
    private Integer userId;

    @NotBlank(message = "用户名不能为空")
    @Schema(description = "用户名")
    private String username;

    @Schema(description = "用户密码")
    private String password;

    @Schema(description = "用户状态")
    private Boolean isActive;

    @Schema(description = "创建时间", hidden = true)
    private LocalDateTime createdAt;

    @Schema(description = "章节数量")
    private Integer chapterCount;

    @Schema(description = "笔记总数")
    private Integer notesCount;

    @Schema(description = "清晰笔记数量")
    private Integer clearNotesCount;

    @Schema(description = "模糊笔记数量")
    private Integer vagueNotesCount;

    @Schema(description = "不清楚笔记数量")
    private Integer unclearNotesCount;

    @Schema(description = "用户简介")
    private String profile;

    @Schema(description = "令牌余额")
    private Integer tokenBalance;

    @Schema(description = "头像图片")
    private String profilePicture;

}